lexical scope(词法作用域/静态作用域):一种编程语言的作用域规则,变量的可见性由代码的书写位置(源代码的结构)决定,而不是由函数在运行时的调用顺序决定。常见于 JavaScript、Python、Java、C 等语言。(也有语言或情境会对比 dynamic scope 动态作用域。)
/ˈlɛksɪkəl skoʊp/
In JavaScript, closures rely on lexical scope.
在 JavaScript 中,闭包依赖词法作用域。
Because of lexical scope, the inner function can still access variables from the outer function even after the outer function returns.
由于词法作用域,内部函数即使在外部函数返回之后,仍然可以访问外部函数中的变量。
lexical 源自 lexicon(“词汇/词典”),在语言学与计算机领域里常引申为“与源代码文本有关的”;scope 表示“范围/界限”。合起来强调:变量“作用范围”由代码文本结构来决定,因此又常被称为 static scope(静态作用域)。